/**
 * Promise化 es6/7封装版本
 */
// import {config} from '../config/config.js'
import axios from 'axios';
// import Qs from 'qs' // json格式化模块

//导入elementUI的弹窗提示，可以注释修改
import { Message } from 'element-ui';


// 一些错误码
const tips = {
    1: '抱歉，出现了一个错误',
    10001:"密码错误"  //和后端约定，判断错误码比判断字符串要来的好
};

// # 解构
class HttpReQuest{
    //api域名
    base_url;
    //构造函数
    constructor(base_url) {
        //用来自定义传输一些值
        this.base_url = base_url;
    }

    /**
     *  axios自定义Promise化
     */
    request(param){
        return new Promise((resolve, reject)=>{
            this._request(param,resolve,reject)
        })
    }

    /**
     * 装饰 axois 写入配置
     * @private
     */
    _request({url,data="",method='GET'},resolve,reject){
        axios({
            url:this.base_url+url,
            data: data,
            method
        }).then((res)=>{
            resolve(res)
        }).catch((res)=>{
            reject(res);
            this._show_error(1)
        })
    }
    _show_error(error_code){
        if(!error_code){
            error_code = 1
        }
        const tip = tips[error_code];
        Message.error(tip?tip:tips[1])
    }


}


export default HttpReQuest
